package networkCode.huawei;

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

public class HJ8 {
    /**
     * 题目描述
     * <p>
     * 数据表记录包含表索引和数值（int范围的整数），请对表索引相同的记录进行合并，即将相同索引的数值进行求和运算，输出按照key值升序进行输出。
     * 输入描述:
     * 先输入键值对的个数
     * 然后输入成对的index和value值，以空格隔开
     * <p>
     * 输出描述:
     * 输出合并后的键值对（多行）
     * <p>
     * 示例1
     * 输入
     * 4
     * 0 1
     * 0 2
     * 1 2
     * 3 4
     * <p>
     * 输出
     * 0 3
     * 1 2
     * 3 4
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int next=sc.nextInt();
        TreeMap<Integer,Integer> map = new TreeMap();
        while (sc.hasNext()) {
//            int next = sc.nextInt();
//            TreeMap<Integer, Integer> map = new TreeMap();
            for (int i = 0; i < next; i++) {
                int key = sc.nextInt();
                int value = sc.nextInt();
                if (map.containsKey(key)) {
                    map.put(key, map.get(key) + value);
                } else {
                    map.put(key, value);
                }
            }
            for (Map.Entry<Integer, Integer> tempMap : map.entrySet()) {
                System.out.println(tempMap.getKey() + " " + tempMap.getValue());
            }
        }
    }
}
